﻿namespace FFF.Test.Entity
{
    using System.IO;
    using System.Reflection;
    using Abp.AutoMapper;
    using Abp.Modules;
    using Abp.Reflection.Extensions;
    using Abp.Runtime.Caching.Redis;
    using Microsoft.Extensions.Configuration;
    using FFF.Test.Util.Configuration;
    using FFF.Test.Util;
    using FFF.Test.Util.Consts;

    /// <summary>
    /// 定义entity模块的
    /// </summary>
    [DependsOn(
        typeof(AbpAutoMapperModule),
        typeof(YdmCodeArtCoreUtilModule))]
    public class YdmAbpEntityModule : AbpModule
    {
        /// <summary>
        /// 这里进行配置的初始化
        /// </summary>
        public override void PreInitialize()
        {
        }

        /// <summary>
        /// 这里进行依赖注入的配置化
        /// </summary>
        public override void Initialize()
        {
            base.IocManager.RegisterAssemblyByConvention(typeof(YdmAbpEntityModule).GetAssembly());

            //    // 在这配置 automapper中的一些特殊映射规则
            //    this.Configuration.Modules.AbpAutoMapper().Configurators.Add(
            //      cfg =>
            //      {
            //          cfg.CreateMap<CS03Entity, CY20Entity>();
            //          cfg.CreateMap<CS06Entity, CY39Entity>();
            //          cfg.CreateMap<AI01Entity, AI04Entity>();
            //      }
            //    );

            //    // 在这配置 automapper中的一些特殊映射规则
            //    this.Configuration.Modules.AbpAutoMapper().Configurators.Add(
            //      cfg =>
            //      {
            //          // cfg.AddProfiles(thisAssembly);
            //          // cfg.CreateMap<TestA, TestC>().ForMember(u => u.Name2,
            //          //  options => options.MapFrom(input => input.Name))
            //          // .ForMember(u => u.Password, options => options.Ignore())
            //          // .ForMember(u => u.Email, options => options.MapFrom(input => input.EmailAddress));
            //      }
            //    );
            //}
        }
    }
}